//
//  ASHUD.h
//  
//
//  Created by  on 2023/3/3.
//  Copyright © 2023 lishen. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

/**
 * Hud Offset Position
 */
typedef NS_ENUM(NSUInteger, HudPosition) {
    kHudPosition_Top = 1000,
    kHudPosition_Center,
    kHudPosition_Bottom
};


@interface ASHUD : NSObject

/**
 显示FCloading图标到指定view上，隐藏方法则直接点用[FCHUD hideHUDForView:]
 
 @param view 指定view，如果view为nil，则直接添加到window
 @return MBProgressHUD
 */
+ (MBProgressHUD *)showLoadingWithView:(UIView *)view;

/**
 显示FCloading图标到指定view上，隐藏方法则直接点用[FCHUD hideHUDForView:]
 
 @param view 指定view，如果view为nil，则直接添加到window
 @param offsetY return MBProgressHUD
 */
+ (MBProgressHUD *)showLoadingWithView:(UIView *)view offsetY:(CGFloat)offsetY;

/**
 显示FCloading图标到指定view上，隐藏方法则直接点用[FCHUD hideHUDForView:]
 
 @param view 指定view，如果view为nil，则直接添加到window
 @param userInteractionEnabled 蒙版是否可以点击
 @return MBProgressHUD
 */
+ (MBProgressHUD *)showLoadingWithView:(UIView *)view userInteractionEnabled:(BOOL)userInteractionEnabled;

/**
 显示FCloading图标到window上，隐藏方法则直接点用[FCHUD hideHUDForView:]
 
 @return MBProgressHUD
 */
+ (MBProgressHUD *)showLoading;

/**
 菊花转loading到指定view，需要手动隐藏
 
 @param message 信息内容
 @param view 指定view
 @return MBProgressHUD
 */
+ (MBProgressHUD *)showMessage:(NSString *)message toView:(UIView *)view;

/**
 window上显示菊花转loading
 
 @param message 信息内容
 @return MBProgressHUD
 */
+ (MBProgressHUD *)showMessage:(NSString *)message;

/**
 简单文字提示。tost，不自动消失
 
 @param text 信息内容
 */
+ (void)showNoDismissWithText:(NSString *)text;

/**
 简单文字提示。tost
 
 @param text 信息内容
 */
+ (void)showWithText:(NSString *)text;
+ (void)showWithText:(NSString *)text position:(HudPosition)position;
/**
 简单文字提示。tost，自动消失
 
 @param text 信息内容
 @param afterDelay 多久之后消失
 */
+ (void)showWithText:(NSString *)text afterDelay:(CGFloat)afterDelay;
+ (void)showWithText:(NSString *)text afterDelay:(CGFloat)afterDelay position:(HudPosition)position;

/**
 简单文字提示。tost，需要手动调用消息
 
 @param text 信息内容
 */
+ (void)showWithHUDText:(NSString *)text;

/**
 文字提示加上图标，tost到指定view
 
 @param text 文字
 @param icon 图标
 @param view 指定view
 */
+ (void)show:(NSString *)text icon:(UIImage *)icon view:(UIView *)view;

/**
 提示错误信息导置顶指定view
 
 @param error 信息内容
 @param view 指定view
 */
+ (void)showError:(NSString *)error toView:(UIView *)view;

/**
 window上提示错误信息
 
 @param error 错误信息
 */
+ (void)showError:(NSString *)error;

/**
 提示成功信息
 
 @param success 信息内容
 @param view 要显示的view
 */
+ (void)showSuccess:(NSString *)success toView:(UIView *)view;

/**
 window上提示成功信息
 
 @param success 成功信息
 */
+ (void)showSuccess:(NSString *)success;

/**
 隐藏制定view上的hud
 
 @param view 指定的view
 */
+ (void)hideHUDForView:(UIView *)view;
/**
 隐藏window上的hud
 */
+ (void)hideHUD;

+ (void)showASLoading;


@end

NS_ASSUME_NONNULL_END
